配置双管理节点高可用
管理节点高可用安装步骤如下:
1. 安装准备
- 安装两台管理节点,分别在两台物理机上安装两台管理节点,安装步骤参考《安装操作系统》,管理节点A和管理节点B。
- 更新管理节点许可,分别为两台管理节点获取许可,并上传。
- VIP(虚拟IP)用于安装双管理节点之后的云平台的访问,此处以192.168.1.254为例。
2. 安装高可用套件
a. 在一台管理节点上安装管理节点高可用套件,以A为例:准备好管理节点高可用安装包(ZStack-Enterprise-Multinode-HASuite.tar.gz)下载到管理节点A。
tar zxvf ZStack-Enterprise-Multinode-HA-Suite.tar.gz
chmod +x zsha2
b. 安装高可用套件(内容需要参考具体现场环境修改)
./zsha2 sample-config > zs-install.config
vim zs-install.config
{
# 主备管理节点的仲裁网关
"gateway": "192.168.1.1",
# 指定Keep Alived通信的VIP
"virtualIp": "192.168.1.254",
# 指定本机IP
"myIp": "192.168.1.100",
# 指定Peer管理节点IP
"peerIp": "192.168.1.101",
# 指定Peer管理节点SSH用户名
"peerSshUser": "root",
# 指定Peer管理节点SSH密码
"peerSshPass": "password",
# 指定Peer管理节点SSH端口
"peerSshPort": 22,
# 指定主备管理节点的数据库root密码(必须相同)
"dbRootPass": "zstack.mysql.password",
# 物理设备名,用于配置VIP,生产环境一般是一个管理网络的网桥
"interface": "br_bond0",
# 指定时间同步服务器,用于统一时间同步
"timeServer": "192.168.1.109"
}
c. 确认好配置文件后开始安装:
./zsha2 install-ha -config zs-install.config
d. 安装完成后使用命令查看管理服务的状态
zsha2 status
3. 时间同步模型
- 时间同步模式假设如下地址,时间同步方案建议由内网server节点(192.168.1.109)统一同步集群内部服务器时间,然后内网server节点单独同步公网时间源。
- 如果是无法上互联网的环境,可以直接让集群内服务器同步内网的server节点即可,确保集群内时间是同步的。
- 如果企业内部有自己的时间同步服务器,这里的外网server节点可设置指向企业内部的时间同步服务器地址。
上述一键初始化环境已经配置好内网集群时间同步指向内网server节点(192.168.1.109)
# 配置内网server端(192.168.1.109): vim /etc/chrony.conf # 新增时间源为ntp.aliyun.com(作为client端访问此时间服务器) server ntp.aliyun.com iburst # 然后重启chronyd服务: systemctl restart chronyd.service
4. 手动将同步完成后的时间写入服务器系统时间。
hwclock -w
# 如果所有服务器密码均是初始相同的可执行批量操作脚本,这里默认密码为password,示例为192.168.1.100到192.168.1.108执行hwclock -w 写入硬件时间
for i in `seq 100 108`;do sshpass -p "password" ssh -o StrictHostKeyChecking=no root@192.168.1.$i "hwclock -w";done
5. 配置管理节点防火墙规则,在两个ZStack Cloud云平台管理节点执行。
vim /usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties
# 在配置文件中追加如下内容:
KvmHost.iptables.rule.0 = '-I INPUT -p tcp -m tcp --dport 2049 -j ACCEPT'
KvmHost.iptables.rule.1 = '-I INPUT -p tcp -m tcp --dport 2379:2380 -j ACCEPT'
KvmHost.iptables.rule.2 = '-I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT'
KvmHost.iptables.rule.3 = '-I INPUT -p tcp -m tcp --dport 5432:5433 -j ACCEPT'
KvmHost.iptables.rule.4 = '-I INPUT -p tcp -m tcp --dport 6789 -j ACCEPT'
KvmHost.iptables.rule.5 = '-I INPUT -p tcp -m tcp --dport 6800:7300 -j ACCEPT'
KvmHost.iptables.rule.6 = '-I INPUT -p tcp -m tcp --dport 7480 -j ACCEPT'
KvmHost.iptables.rule.7 = '-I INPUT -p tcp -m tcp --dport 8051:8053 -j ACCEPT'
KvmHost.iptables.rule.8 = '-I INPUT -p tcp -m tcp --dport 8056 -j ACCEPT'
KvmHost.iptables.rule.9 = '-I INPUT -p tcp -m tcp --dport 8058 -j ACCEPT'
KvmHost.iptables.rule.10 = '-I INPUT -p tcp -m tcp --dport 8061 -j ACCEPT'
KvmHost.iptables.rule.11 = '-I INPUT -p tcp -m tcp --dport 9200 -j ACCEPT'
KvmHost.iptables.rule.12 = '-I INPUT -p tcp -m tcp --dport 9300 -j ACCEPT'
KvmHost.iptables.rule.13 = '-I INPUT -p tcp -m tcp --dport 7070 -j ACCEPT'
KvmHost.iptables.rule.14 = '-I INPUT -p tcp -m tcp --dport 9089 -j ACCEPT'
KvmHost.iptables.rule.15 = '-I INPUT -p udp --dport 123 -j ACCEPT'